package com.gxa.learning.portal.service;

import com.gxa.learning.core.exception.BusinessException;
import com.gxa.learning.core.pojo.Feedback;
import com.gxa.learning.core.service.BaseService;

import java.util.List;
import java.util.Map;

/**
 * @version E-learning
 * @Author lonny
 * @Date 2021/12/13 20:12
 */
public interface StudyPlanService extends BaseService<Feedback> {

    /**
     * 查询对应用户所有培训项目列表
     *
     * @param userId 培训人id
     * @return 列表
     * @throws Exception 抛出
     */
    List<Map<String, Object>> getUserProjectList(String userId) throws Exception;

    /**
     * 查询用户培训项目课程
     *
     * @param projectId 项目编号
     * @param userId    用户编号
     * @return 列表
     * @throws Exception 抛出
     */
    List<Map<String, Object>> getCourseList(String projectId, String userId) throws Exception;

    /**
     * 签到表
     *
     * @param projectId 项目编号
     * @param userId    用户编号
     * @param courseId  课程编号
     * @return lb
     * @throws Exception 抛出
     */
    List<Map<String, Object>> getSignInList(String userId, String projectId, String courseId) throws Exception;


    /**
     * 签到
     *
     * @param pid 培训项目编号
     * @param uid 用户编号
     * @param key 啊
     * @throws BusinessException pc
     */
    void signIn(Long pid, Long uid, String key) throws BusinessException;


    /**
     * 通过用户和培训 查询反馈情况
     *
     * @param userId    用户
     * @param projectId 培训
     * @param courseId  培训
     * @return 返回
     * @throws Exception pc
     */
    Map<String, Object> findByUserAndProject(Long userId, Long projectId, Integer courseId) throws Exception;

    /**
     * 单个项目
     *
     * @param id 项目
     * @return Map
     * @throws BusinessException 抛出
     */
    Map<String, Object> getById(String id) throws BusinessException;


    /**
     * 课程评分
     *
     * @param courseId 课程
     * @return Map
     */
    Map<String, Object> courseNum(String courseId);
}
